package cn.dyhack.bibiscan.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.dyhack.bibiscan.aop.UserTokenValidAnnotation;
import cn.dyhack.bibiscan.po.tables.pojos.User;
import cn.dyhack.bibiscan.vo.CommonResp;
import cn.dyhack.bibiscan.vo.VoLoginUser;
import cn.dyhack.bibiscan.vo.VoUser;

/**
 * 
 * 用户控制类接口
 * </p>
 * 主要执行用户的一些基础操作跳转
 *
 * @author zhangke
 * @since 0.0.1
 */
public interface UserController {
    
    /**
     * 
     * 添加用户
     *
     * @return 创建是否成功
     * @param  token 令牌
     * @param user 用户对象
     * @author zhangke
     * @since 0.0.1
     */
    public CommonResp addUser(HttpServletRequest request,User user);
    
    /**
     * 
     * 查找一个用户
     *
     * @return 返回一个json格式的用户对象
     * @author zhangke
     * @since 1.0.0
     */
    public VoUser selectUser(HttpServletRequest request,Long userId);
    
    
    /**
     * 
     *删除用户
     *
     * @param userId 用户id
     * @param token 校验参数
     * @author zhangke
     * @since 1.0.0
     */
    public void delUser(Long userId,String token);
    
    /**
     * 
     * 用户登录
     *
     * @author zhangke
     * @return 
     * @since 1.0.0
     */
    
    public CommonResp login(HttpServletResponse response,VoLoginUser voLoginUser);
    
    
   
    /**
     * 
     * 用户登出
     *
     * @param request 响应请求
     * @param response 响应返回
     * @param userName 用户名
     * @return 公告响应
     * @author zhangke
     * @since 1.0.0
     */
    
    public CommonResp logout(HttpServletRequest request, HttpServletResponse response, String userName);
   
}
